﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Workflow.Activities;

namespace BneyBaruch.Ingest.MorningLesson.WorkflowCommunication.VideoCaptureBoxServer
{
    [ExternalDataExchange()]
    public interface IVideoCaptureBoxServerExchangeService
    {
        #region Events

        event EventHandler<FileSystemPreparationReportEventArgs> FileSystemOnFullVideoCaptureBoxServerReadyToUse;
        event EventHandler<FileSystemPreparationReportEventArgs> FileSystemOnSplittedVideoCaptureBoxServerReadyToUse;

        #endregion

        #region Callback/Notify Methods

        /// <summary>
        /// Raises an event to the morning lesson workflow to indicate that a full video capture box server has check and prepare
        ///     a file system before recording.
        /// </summary>
        void NotifyFileSystemBeforeRecordingCommandCompletedOnFullVideoCaptureBoxServer(Guid workflowInstanceId);

        /// <summary>
        /// Raises an event to the morning lesson workflow to indicate that a splitted video capture box server has check and prepare
        ///     a file system before recording.
        /// </summary>
        void NotifyFileSystemBeforeRecordingCommandCompletedOnSplittedVideoCaptureBoxServer(Guid workflowInstanceId);

        #endregion

        #region Start Communication Methods

        /// <summary>
        /// Send prepare file system before recording command to full video capture box server.
        /// </summary>
        /// <param name="workflowInstanceId"></param>
        void PrepareFileSystemBeforeRecordingOnFullVideoCaptureBoxServer(Guid workflowInstanceId);

        /// <summary>
        /// Send prepare file system before recording command to splitted video capture box server.
        /// </summary>
        /// <param name="workflowInstanceId"></param>
        void PrepareFileSystemBeforeRecordingOnSplittedVideoCaptureBoxServer(Guid workflowInstanceId);

        #endregion
    }
}
